Flip-flops are used as building blocks in a variety of sequential logic circuits such as registers. For example, many modern microprocessors use a technique known as pipelining in which the processing of an instruction is broken down into several smaller sub-tasks, each of which can be performed within one clock cycle. Pipelined microprocessors include dedicated circuitry to perform each sub-task, and different instructions are processed at each subtask in a sequential, or pipelined, fashion. By using this technique, pipelined microprocessors are able to achieve high effective instruction throughput even though only a portion of any individual instruction is processed per clock cycle in one of the pipeline stages.
Pipelined microprocessors use pipeline registers to store the results of an operation at a particular pipeline stage and provide these results to a subsequent pipeline stage. The speed of a pipelined microprocessor is limited by the amount of time it takes to perform the functions of a pipeline stage as well as to store the results stably in the pipeline register. Thus the speed in which the microprocessor clock can be set at is limited, in part, by the delay through the pipeline register, and hence the flip-flops that make up the pipeline register.
In addition, many digital logic circuits including pipelined microprocessors use a technique known as boundary scan testing to allow internal nodes to be fully tested so that almost all possible manufacturing defects can be detected. When using boundary scan testing, test data is scanned into a serial chain of scan flip-flops and when the data has been properly aligned in the serial chain, a test controller enables the test and measures the response of the circuit. The controller then scans the data to an output pin so that it can be compared with a response pattern of a correctly fabricated circuit. Scan testing has become a very valuable technique to ensure that complex digital integrated circuits such as pipelined microprocessors are working properly. However adding a scan capability to existing flip-flops used for such purposes as pipeline registers can slow their operation.
There are two known types of scan flip-flops: multiplexed data (MUXD) and level-sensitive scan design (LSSD). LSSD is generally faster than MUXD because it avoids the use of an extra multiplexer in the data input path. However LSSD has two main problems. First, LSSD is not an accepted industry standard, and thus not all electronic design automation (EDA) tool vendors support it, making it harder to create and electrically simulate LSSD designs. Second, LSSD requires more circuit area than MUXD. Thus, neither approach is ideal.
In the following description, the use of the same reference numerals in different drawings indicates similar or identical items. Unless otherwise noted, the word “coupled” and its associated verb forms include both direct connection and indirect connection by means known in the art, and unless otherwise noted any description of direct connection implies alternate embodiments using suitable forms of indirect connection as well.